package com.bfly.mall.wechat.minipro.dto.message;

import com.alibaba.fastjson.JSONObject;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 微信订单退款成功通知
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/12/13 18:54
 */
public class WeChatRefundSuccessMessage extends WeChatSubscribeMessage {

    private static final long serialVersionUID = -6180032707282598022L;
    /**
     * 所需下发的订阅模板id
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 13:57
     */
    private String templateId = "qiDf4oZfKIterEb2rs58tqR6t30X00CyyRrGe7K5-O4";

    /**
     * 物品名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:13
     */
    private String productName;

    /**
     * 退款时间
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:14
     */
    private Date refundTime;

    /**
     * 退款金额
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/14 19:28
     */
    private BigDecimal price;

    /**
     * 退款状态
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:14
     */
    private String status;

    @Override
    public String toString() {
        JSONObject json = new JSONObject();
        json.put("touser", getTouser());
        json.put("template_id", getTemplateId());
        json.put("page", getPage());
        json.put("miniprogram_state",getState());

        JSONObject dataJson = new JSONObject();

        JSONObject valueJson = new JSONObject();
        valueJson.put("value", getOrderNo());
        dataJson.put("character_string4", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getProductName());
        dataJson.put("thing5", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getRefundTime());
        dataJson.put("time2", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getPrice());
        dataJson.put("amount1", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getStatus());
        dataJson.put("phrase3", valueJson);

        super.cutValueLength(dataJson);
        json.put("data", dataJson);
        return json.toJSONString();
    }

    public String getTemplateId() {
        return templateId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public Date getRefundTime() {
        return refundTime;
    }

    public void setRefundTime(Date refundTime) {
        this.refundTime = refundTime;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}
